package com.jxdinfo.hussar.example.mes.md.service.impl;

import java.util.List;

import com.jxdinfo.hussar.example.common.utils.DateUtils;
import com.jxdinfo.hussar.example.common.utils.StringUtils;
import com.jxdinfo.hussar.example.mes.md.dao.MdErpenumMapper;
import com.jxdinfo.hussar.example.mes.md.service.IMdErpenumService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jxdinfo.hussar.example.mes.md.domain.MdErpenum;

/**
 * ERP枚举Service业务层处理
 *
 * @author 常宝坤
 * @date 2024-04-19
 */
@Service
public class MdErpenumServiceImpl  implements IMdErpenumService
{
    @Autowired
    private IMdErpenumService mdErpenumService;

    @Autowired
    private MdErpenumMapper mdErpenumMapper;

    /**
     * 查询ERP枚举
     *
     * @param enumId ERP枚举主键
     * @return ERP枚举
     */
    @Override
    public MdErpenum selectMdErpenumByEnumId(Long enumId)
    {
        return mdErpenumMapper.selectMdErpenumByEnumId(enumId);
    }

    /**
     * 查询ERP枚举列表
     *
     * @param mdErpenum ERP枚举
     * @return ERP枚举
     */
    @Override
    public List<MdErpenum> selectMdErpenumList(MdErpenum mdErpenum)
    {
        return mdErpenumMapper.selectMdErpenumList(mdErpenum);
    }

    /**
     * 新增ERP枚举
     *
     * @param mdErpenum ERP枚举
     * @return 结果
     */
    @Override
    public int insertMdErpenum(MdErpenum mdErpenum)
    {
        mdErpenum.setCreateTime(DateUtils.getNowDate());
        return mdErpenumMapper.insertMdErpenum(mdErpenum);
    }

    /**
     * 修改ERP枚举
     *
     * @param mdErpenum ERP枚举
     * @return 结果
     */
    @Override
    public int updateMdErpenum(MdErpenum mdErpenum)
    {
        mdErpenum.setUpdateTime(DateUtils.getNowDate());
        return mdErpenumMapper.updateMdErpenum(mdErpenum);
    }

    /**
     * 批量删除ERP枚举
     *
     * @param enumIds 需要删除的ERP枚举主键
     * @return 结果
     */
    @Override
    public int deleteMdErpenumByEnumIds(Long[] enumIds)
    {
        return mdErpenumMapper.deleteMdErpenumByEnumIds(enumIds);
    }

    /**
     * 删除ERP枚举信息
     *
     * @param enumId ERP枚举主键
     * @return 结果
     */
    @Override
    public int deleteMdErpenumByEnumId(Long enumId)
    {
        return mdErpenumMapper.deleteMdErpenumByEnumId(enumId);
    }

    @Override
    public void manualSynchronization()
    {
        //查询所有erp枚举数据
        List<MdErpenum> mdErpenums = mdErpenumMapper.selectMdErpenumListerp();
        if (mdErpenums != null){
            for (MdErpenum mdErpenum : mdErpenums) {
                mdErpenum.setEnableFlag("1");
                mdErpenum.setDeletedFlag("0");
                //mes是否存在枚举数据   不存在执行添加   存在时比较是否相同，不同时则跟新
                MdErpenum erpenum = mdErpenumService.selectMdErpenumByEnumId(mdErpenum.getEnumId());
                if ( StringUtils.isNull(erpenum)){
                    mdErpenumService.insertMdErpenum(mdErpenum);
                }else if (!mdErpenum.getEnumlxCode().equals(erpenum.getEnumlxCode()) ||  !mdErpenum.getEnumlxName().equals(erpenum.getEnumlxName())){
                    mdErpenumService.updateMdErpenum(mdErpenum);
                }else if (!mdErpenum.getEnummxCode().equals(erpenum.getEnummxCode()) ||  !mdErpenum.getEnummxName().equals(erpenum.getEnummxName())){
                    mdErpenumService.updateMdErpenum(mdErpenum);
                }
            }
        }
    }
}
